// 身份验证相关工具函数

/**
 * 检查用户是否已登录
 * @returns boolean
 */
export function isUserLoggedIn(): boolean {
  try {
    const userInfo = localStorage.getItem('user')
    if (userInfo) {
      const user = JSON.parse(userInfo)
      return !!(user.token && user.id)
    }
  } catch (e) {
    console.warn('检查登录状态失败:', e)
  }
  return false
}

/**
 * 获取当前用户token
 * @returns string
 */
export function getUserToken(): string {
  try {
    const userInfo = localStorage.getItem('user')
    if (userInfo) {
      const user = JSON.parse(userInfo)
      return user.token || ''
    }
  } catch (e) {
    console.warn('获取用户token失败:', e)
  }
  return ''
}

/**
 * 获取当前用户ID
 * @returns string | number | null
 */
export function getUserId(): string | number | null {
  try {
    const userInfo = localStorage.getItem('user')
    if (userInfo) {
      const user = JSON.parse(userInfo)
      return user.id || null
    }
  } catch (e) {
    console.warn('获取用户ID失败:', e)
  }
  return null
}

/**
 * 清除用户认证信息
 */
export function clearUserAuth(): void {
  localStorage.removeItem('user')
  localStorage.removeItem('token')
}

/**
 * 重定向到登录页
 */
export function redirectToLogin(): void {
  // 动态导入ElMessage避免循环依赖
  import('element-plus').then(({ ElMessage }) => {
    ElMessage.warning('登录状态已失效，请重新登录')
  }).catch(() => {
    console.log('登录状态已失效，请重新登录')
  })
  
  // 清除认证信息
  clearUserAuth()
  // 跳转到登录页
  window.location.href = '/login'
}
